package org.opentcs.kcvehicle.communication.kc.udp.agv.param.function.read;

import java.util.ArrayList;
import java.util.List;
import org.opentcs.kcvehicle.communication.kc.common.byteutils.ByteUtil;

public class ReadValueMember {
  //偏移值，就是以这个变量的起始点为基准，偏移几个字节，来读取数组里的后面几个变量，基本上用于数组变量，单体变量用不着 2个字节
  private byte[] offsetValue;
  //变量成员长度，就是你要读取的content长度，可以是1个变量的长度，也可以是n个变量的长度(就是数据类型 的字节长度)
  private byte[] memberVarLength;

  public ReadValueMember(Short offsetValue, Short memberVarLength) {
    this.offsetValue = ByteUtil.shortToBytes(offsetValue);
    this.memberVarLength = ByteUtil.shortToBytes(memberVarLength);
  }

  public List<Byte> toBytes() {
    List<Byte> bytes = new ArrayList<>();
    for (byte b : offsetValue) {
      bytes.add(b);
    }
    for (byte b : memberVarLength) {
      bytes.add(b);
    }
    return bytes;
  }

}
